home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / PC / MISCBAS / EDTEXT.ASC < prev    next >
Text File  |  1987-01-11  |  6KB  |  215 lines

  1.  
  2. 10 REM **** TEXT EDITOR
  3. 70 GOTO 300
  4. 99 REM *** WRITE SECTION
  5. 100 CLEAR 8000
  6. 110 DIM A$(100)
  7. 111 INPUT"SET TAB AT NUMBER ";T
  8. 112 T=T-1
  9. 120 PRINT "READY":WAIT 0, 1, 1
  10. 130 PRINT:PRINT:PRINT:PRINT
  11. 140 FOR I=1 TO 1000
  12. 150 K=0
  13. 160 WAIT 0,1,1
  14. 170 A=INP(1):A=A AND 127
  15. 171 IF A=92 THEN 202
  16. 180 IF A=13 THEN 280
  17. 190 IF A=95 THEN 260
  18. 200 IF A=64 THEN A$(I)="":PRINT:GOTO 150
  19. 201 GOTO 210
  20. 202 B$="": IF K>=T THEN PRINT"":GOTO 160
  21. 203 FOR TAB =1 TO T-K:B$=B$+" ":NEXT TAB
  22. 204 PRINTB$;
  23. 205 K=K+T-1
  24. 207 GOTO 220
  25. 210 B$=CHR$(A):PRINT B$;
  26. 220 A$(I)=A$(I) + B$:K=K+1
  27. 230 IF A$(I)="END"THEN K2=I:GOTO 1500
  28. 240 IF LEN(A$(I))>69 THEN 280
  29. 250 GOTO 160
  30. 260 GOSUB 1000
  31. 270 GOTO 160
  32. 280 PRINT:NEXT I
  33. 299 REM *** PROGRAM CONTROL SECTION
  34. 300 INPUT "FUNCTION";F$
  35. 310 IF LEFT$(F$,2)="WR" THEN 100
  36. 320 IF LEFT$(F$,2)="PR" THEN 1500
  37. 330 IF LEFT$(F$,2)="ED" THEN 2000
  38. 340 IF LEFT$(F$,2)="EN" THEN END
  39. 400 PRINT "FUNCTIONS ARE:"
  40. 410 PRINT "WRITE","PRINT","EDIT","END"
  41. 500 GOTO 300
  42. 999 REM *** LAST CHARACTER EDIT SECTION
  43. 1000 C$=A$(I)
  44. 1005 IF K=0 THEN PRINT CHR$(7):RETURN
  45. 1010 IF K=1 THEN A$(I)="":PRINT CHR$(7):K=0:RETURN
  46. 1020 K=K-1:A$(I)=LEFT$(C$,K)
  47. 1030  PRINT:PRINT A$(I)
  48. 1040 RETURN
  49. 1499 REM *** PRINT SECTION
  50. 1500 PRINT:PRINT:PRINT:PRINT
  51. 1510 FOR I=1 TO 1000
  52. 1520 IF A$(I)="END" THEN 1590
  53. 1530 PRINT A$(I)
  54. 1540 NEXT I
  55. 1560 FOR T=1 TO 5000: NEXT T
  56. 1590 PRINT:PRINT:PRINT:PRINT:GOTO 300
  57. 2000 GOTO 2050
  58. 2001 REM *** EDIT LIST SECTION
  59. 2002 PRINT:PRINTTAB(5):FOR I=1 TO 6:PRINT"1234567890";:NEXT
  60. 2003 PRINT
  61. 2004 FOR I=1 TO 1000
  62. 2010 IF A$(I)="END" THEN 2050
  63. 2020 PRINT I;TAB(5);A$(I)
  64. 2030 NEXT I:PRINT:PRINT
  65. 2049 REM *** EDIT CONTROL SECTION
  66. 2050 INPUT"TYPE OF EDIT ";TE$
  67. 2060 E$=LEFT$(TE$,2)
  68. 2070 IF E$<>"CH"AND E$<>"IN"AND E$<>"DE"AND E$<>"LI"ANDE$<>"SE"THEN 2090
  69. 2080 GOTO 2120
  70. 2090 PRINT"TYPES OF EDITING ARE:"
  71. 2100 PRINT "CHANGE","INSERT","DELETE"
  72. 2105 PRINT "SEARCH","LIST"
  73. 2110 GOTO 2050
  74. 2120 IF E$="DE" THEN 5000
  75. 2125 IF E$="SE" THEN 5600
  76. 2130 IF E$="IN" THEN 4000
  77. 2134 IF E$="LI" THEN 2002
  78. 2139 REM *** EDIT CHANGE SECTION
  79. 2140 INPUT "WHICH LINE ";LN
  80. 2150 PRINT A$(LN)
  81. 2160 INPUT "CORRECT LINE ";CL$
  82. 2170 IF LEFT$(CL$,1)<>"Y" THEN 2140
  83. 2180 GOTO 3000
  84. 3000 INPUT "WHICH CHARACTER ";C
  85. 3010 PRINTMID$(A$(LN),C,1)
  86. 3020 INPUT "CORRECT CHARACTER ";CC$
  87. 3030 IF LEFT$(CC$,1)<>"Y" THEN 3000
  88. 3040 INPUT "CHANGE HOW MANY ";N
  89. 3050 IF N<0 OR (N+C)>LEN(A$(LN)) THEN 3040
  90. 3060 T1$=LEFT$(A$(LN),(C-1))
  91. 3070 T=LEN(A$(LN))-(C-1)-N
  92. 3080 T2$=RIGHT$(A$(LN),T)
  93. 3090 T$="":PRINT T1$;
  94. 3100 FOR I2=1 TO N
  95. 3110 WAIT 0,1,1
  96. 3120 Q=INP(1)
  97. 3130 Q=Q AND 127
  98. 3140 T$=T$+CHR$(Q):PRINT CHR$(Q);
  99. 3150 NEXT I2
  100. 3160 PRINT T2$
  101. 3170 A$(LN)=T1$+T$+T2$
  102. 3180 GOTO 300
  103. 3999 REM *** EDIT INSERT SECTION
  104. 4000 INPUT "LETTER OR LINE ";LL$
  105. 4010 IF LEFT$(LL$,2)="LE" THEN 4050
  106. 4020 IF LEFT$(LL$,2)="LI" THEN 4400
  107. 4030 GOTO 4000
  108. 4049 REM *** LETTER INSERT SECTION
  109. 4050 INPUT "WHICH LINE ";LN
  110. 4060 PRINT A$(LN):INPUT "CORRECT LINE ";CL$
  111. 4070 IF LEFT$(CL$,1)<>"Y" THEN 4050
  112. 4100 INPUT "AFTER WHICH CHARACTER ";LE
  113. 4110 IF LE>LEN(A$(LN)) THEN 4100
  114. 4111 IF LE=0 THEN PRINT"INSERT STARTS AT FIRST POSITION":T1$="":GOTO4143
  115. 4120 PRINT MID$(A$(LN),LE,1):INPUT"CORRECT CHARACTER ";CC$
  116. 4130 IF LEFT$(CC$,1)<>"Y" THEN 4100
  117. 4140 T1$=LEFT$(A$(LN),LE)
  118. 4143 T2$=MID$(A$(LN),(LE+1))
  119. 4145 T$=""
  120. 4150 PRINT T1$
  121. 4160 WAIT 0,1,1
  122. 4170 A=INP(1):A=A AND 127
  123. 4180 IF A=13 THEN 4210
  124. 4190 T$=T$+CHR$(A):PRINT CHR$(A);
  125. 4200 IF LEN(A$(LN))+LEN(T$)=69 THEN PRINT "";
  126. 4205 GOTO 4160
  127. 4210 A$(LN)=T1$+T$+T2$:PRINT T2$
  128. 4220 GOTO 300
  129. 4399 REM *** LINE INSERT SECTION
  130. 4400 INPUT"AFTER WHICH LINE ";LN
  131. 4410 PRINT A$(LN):INPUT"CORRECT LINE ";CL$
  132. 4420 IF LEFT$(CL$,1)<>"Y" THEN 4400
  133. 4430 LN=LN+1
  134. 4440 FOR L=K2 TO LN STEP -1
  135. 4450 A$(L+1)=A$(L)
  136. 4460 NEXT L:K2=K2+1
  137. 4470 PRINT"READY ":A$(LN)="":K=0
  138. 4480 WAIT 0,1,1
  139. 4490 A=INP(1):A=A AND 127
  140. 4500 IF A=13 THEN 4560
  141. 4510 IF A=95 THEN 4800
  142. 4520 IF A=64 THEN A$(LN)="":PRINT:GOTO 4480
  143. 4530 B$=CHR$(A):PRINT B$;:K=K+1
  144. 4540 A$(LN)=A$(LN)+B$
  145. 4550 GOTO 4480
  146. 4560 PRINT:GOTO 300
  147. 4800 IF K=0 THEN PRINT"":GOTO 4480
  148. 4802 IF K=1 THEN K=0:A$(LN)="":PRINT"":GOTO 4480
  149. 4803 A$(LN)=LEFT$(A$(LN),K-1):K=K-1
  150. 4810 PRINT:PRINT A$(LN);
  151. 4820 GOTO 4480
  152. 4999 REM *** DELETE SECTION
  153. 5000 INPUT"CHARACTER OR LINE ";CL$
  154. 5010 IF LEFT$(CL$,2)="CH" THEN 5100
  155. 5020 IF LEFT$(CL$,2)="LI" THEN 5400
  156. 5030 GOTO 5000
  157. 5099 REM *** CHARACTER DELETE SECTION
  158. 5100 INPUT "WHICH LINE ";LN
  159. 5110 PRINT A$(LN):INPUT "CORRECT LINE ";CL$
  160. 5120 IF LEFT$(CL$,1)<>"Y" THEN 5100
  161. 5130 INPUT "AFTER WHICH CHARACTER ";N
  162. 5140 IF N=0 THEN PRINT"DELETE STARTS WITH CHARACTER 1":GOTO 5170
  163. 5145 PRINT MID$(A$(LN),N,1)
  164. 5150 INPUT "CORRECT CHARACTER ";CC$
  165. 5160 IF LEFT$(CC$,1)<>"Y" THEN 5130
  166. 5170 INPUT"DELETE HOW MANY ";N2
  167. 5180 IF LEN(A$(LN))-N<N2 THEN 5170
  168. 5185 IF N=0 THEN T1$="":GOTO 5200
  169. 5190 T1$=LEFT$(A$(LN),N)
  170. 5200 T=LEN(A$(LN))-(N+N2)
  171. 5210 T2$=RIGHT$(A$(LN),T)
  172. 5220 T$=MID$(A$(LN),(N+1),N2)
  173. 5230 PRINTT1$;"/";T$;"/";T2$
  174. 5240 INPUT "CORRECT ";C$
  175. 5250 IF LEFT$(C$,1)<>"Y" THEN 5170
  176. 5260 A$(LN)=T1$+T2$
  177. 5270 PRINT A$(LN)
  178. 5280 GOTO 300
  179. 5399 REM *** LINE DELETE SECTION
  180. 5400 INPUT "DELETE WHICHH LINE ";WL
  181. 5410 IF WL=<0 OR WL>=K2 THEN 5400
  182. 5420 PRINT A$(WL):INPUT"CORRECT LINE ";CL$
  183. 5430 IF LEFT$(CL$,1)<>"Y" THEN 5400
  184. 5440 IF A$(WL)="END" THEN 300
  185. 5450 FOR J=WL TO K2-1
  186. 5460 A$(J)=A$(J+1)
  187. 5470 NEXT J:K2=K2-1
  188. 5480 INPUT "NEXT LINE ALSO ";NL$
  189. 5490 IF LEFT$(NL$,1)="Y" THEN 5440
  190. 5500 GOTO 300
  191. 5599 REM *** EDIT SEARCH SECTION
  192. 5600 PRINT "WHAT PHRASE ";
  193. 5605 A1$="":Y=0
  194. 5610 WAIT 0,1,1
  195. 5620 A=INP(1):A=A AND 127
  196. 5630 IF A=13 THEN PRINT:GOTO 5700
  197. 5640 IF A=64 OR A=95 THEN A1$="":GOTO 5600
  198. 5650 B$=CHR$(A):PRINT B$;:A1$=A1$+B$
  199. 5655 GOTO 5610
  200. 5700 L=LEN(A1$)
  201. 5710 FOR I=1 TO 1000
  202. 5720 IF LEN(A$(I))<L THEN 6000
  203. 5730 FOR J=1 TO LEN(A$(I))-1
  204. 5740 IF A1$=MID$(A$(I),J,L) THEN 5760
  205. 5750 GOTO 5950
  206. 5760 IF Y=0 THEN Y=1:GOTO 5770
  207. 5765 GOTO 5780
  208. 5770 PRINTCHR$(34);A1$;CHR$(34);"  CAN BE FOUND ON :"
  209. 5780 PRINT "LINE";I;",POSITION";J;"."
  210. 5950 NEXT J
  211. 6000 NEXT I
  212. 6100 IF Y=0 THEN PRINTCHR$(34);A1$;CHR$(34);" IS NOT IN THE TEXT."
  213. 6110 GOTO 300
  214. ,POSITION";J;"."
  215.